Method and apparatus for automatically displaying and manipulating identifiers of a mechanical design

ABSTRACT

Computer instructions that operate to determine if one or more geometry pieces of a mechanical design are within a view boundary and automatically generate and order one or more identifiers corresponding to the geometry pieces within the view boundary, when executed, is disclosed. In one embodiment, the computer instructions are part of a mechanical design software application. In one embodiment, the mechanical design software application including the computer instructions are embodied in a distribution storage medium.

FIELD OF INVENTION

[0001] The present invention relates to the field of computer aideddesign (CAD). More specifically, the present invention relates tocomputer assistance to a designer working with identifiers of a drawingof a mechanical design.

BACKGROUND OF THE INVENTION

[0002] Most mechanical designs require a designer to create a drawing toidentify geometry pieces that make up components of a mechanical design.An example of components of a mechanical design is a nut and boltassembly where the nut and bolt make up the components of the assembly.Once a designer has completed the geometry pieces of an assembly, thedesigner creates a display, usually in the form of a drawing,identifying the individual components that make up the assembly. For thepurposes of this application, the geometry pieces that make up thecomponents of a mechanical design are solid CAD geometry pieces andshall be generically referred to as geometry pieces.

[0003] Generally, identifying individual geometry pieces of an assemblyis labor intensive requiring creation of an identifier, usually in theform of an identity symbol and a leader from the geometry piece to theidentity symbol, for each geometry piece in separate sequence ofcommands, multiple executions of the same commands, and a large numberof key strokes. Thus, as the number of geometry pieces of an assemblyincreases, the time required to identify the geometry pieces increases.Moreover, once the identifiers have been created, a users has difficultychanging the position of the identifier because the ordering of thegeometry pieces would have to be manually changed to remain consistentwith the identifier position.

[0004] Thus, a more user friendly approach for creating identifiers andmanipulating identifiers of geometry pieces of an assembly is desired.As will be described in more detail below, the present inventionachieves these and other desirable objectives, which will be apparentfrom the disclosure to follow.

SUMMARY OF THE INVENTION

[0005] Computer instructions that operate to determine if one or moregeometry pieces of a mechanical design are within a view boundary andautomatically generate and order one or more identifiers correspondingto the geometry pieces within the view boundary, when executed, isdisclosed. In one embodiment, the computer instructions are part of amechanical design software application. In one embodiment, themechanical design software application including the computerinstructions are embodied in a distribution storage medium.

BRIEF DESCRIPTION OF DRAWINGS

[0006] The present invention will be described by way of exemplaryembodiments, but not limitations, illustrated in the accompanyingdrawings in which like references denote similar elements, and in which:

[0007]FIG. 1 illustrates one embodiment of a mechanical design softwareapplication incorporated with the teachings of the present invention;

[0008]FIG. 2 illustrates a first aspect of the present inventiondetermining if one or more geometry pieces of a mechanical design arewithin a view boundary and calculating a location of the centroids ofsolid geometry pieces;

[0009]FIG. 3 illustrates a second aspect of the present inventionautomatically generating and ordering identifiers corresponding to thegeometry pieces within the view boundary;

[0010]FIG. 4 illustrates another example of the first and second aspectof the present invention automatically generating and ordering theidentifiers around the view boundary for more complex assemblies;

[0011]FIG. 5 illustrates a third aspect of the present inventionfacilitating manipulation of the identifiers around the view boundary bya designer;

[0012]FIGS. 6a-6 b illustrate one embodiment of the relevant operationalflows of the graphical display manager of FIG. 1; and

[0013]FIG. 7 illustrates one embodiment of a computer system suitablefor programming with instructions that implement the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0014] In the following description, various aspects of the presentinvention will be described. However, it will be apparent to thoseskilled in the art that the present invention may be practiced with onlysome or all aspects of the present invention. For purposes ofexplanation, specific numbers, materials and configurations are setforth in order to provide a thorough understanding of the presentinvention. However, it will also be apparent to one skilled in the artthat the present invention may be practiced without the specificdetails. In other instances, well known features are omitted orsimplified in order not to obscure the present invention.

[0015] Parts of the description will be presented in terms of operationsperformed by a computer system, using terms such as data, flags, bits,values, characters, strings, numbers and the like, consistent with themanner commonly employed by those skilled in the art to convey thesubstance of their work to others skilled in the art. As well understoodby those skilled in the art, these quantities take the form ofelectrical, magnetic, or optical signals capable of being stored,transferred, combined, and otherwise manipulated through mechanical andelectrical components of the computer system; and the term computersystem include general purpose as well as special purpose dataprocessing machines, systems, and the like, that are standalone, adjunctor embedded.

[0016] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0017] Referring now to FIG. 1, wherein a block diagram illustrating oneembodiment of a computer aided design (CAD) drawing application isshown. As illustrated, drawing application 100 includes end userinterface 102, drawing engine 104, and drawing database 106. Drawingengine 104 includes in particular graphical display manager 108incorporated with the teachings of the present invention. Together, theelements cooperate to facilitate drawing of mechanical designs by adesigner. More specifically, end user interface 102 operates tofacilitate graphical displays of drawings of mechanical designs for thedesigner, under the control of drawing engine 104. Drawing database 106facilitates storage of drawing entities required by the designer, alsounder the control of drawing engine 104. In particular, graphicaldisplay manager 108 automatically generates identifiers corresponding togeometry within a view bounds. In accordance with the present invention,the automated generation is provided responsive to detection ofdifferent geometry pieces of a mechanical drawing, to be described morefully below. Except for the teachings of the present inventionincorporated in graphical display manager 108, drawing application 100is intended to represent a broad range of computer aided design (CAD)drawing software known in the art, including but not limited toMechanical Desktop®, available from Autodesk, Inc. of San Rafael, Calif.

[0018]FIG. 2 illustrates a first aspect of the present inventiondetermining if one or more geometry pieces of a mechanical design arewithin a view boundary and calculating a location of the centroids ofsolid geometry pieces of the present invention. As shown in FIG. 2,graphical display manager 108 operates to display a graphicalrepresentation of the view boundary 210 with geometry pieces 220-224.The size and shape of the view boundary 210 is application dependent,and may be any size and shape depending upon the desired display.Preferably, it is customizable by the designer. For the illustratedembodiment, the geometry pieces 220-224 are exploded solid geometrypieces showing the components of an assembly, however, it should beappreciated that the geometry pieces 220-224 could be any type ofgeometry pieces known in the art including but not limited to twodimensional curves.

[0019] Additionally, for the illustrated embodiment, as shown by FIG. 2,graphical display manager 108 calculates the location of the centroids230-234 of solid geometry pieces 220-224 within the view boundary 210.For the illustrated embodiment, the centroids 230-234 are graphicallydisplayed within their respective geometry pieces 220-224, however, itshould be appreciated that the display of centroids 230-234 isapplication dependent and preferably, customizable by the designer.Thus, in FIG. 2, the graphical display manager 108 calculates thelocation of the centroids 230-234 of the solid geometry pieces 220-224within the view boundary 210.

[0020]FIG. 3 illustrates a second aspect of the present inventionautomatically generating and ordering identifiers corresponding to thegeometry pieces within the view boundary and ordering the identifiers.In the illustrated embodiment shown in FIG. 3, the graphical displaymanager 108 (shown in FIG. 1) operates to automatically generateidentifiers 310-314 corresponding to the geometry pieces 220-224 aroundthe view boundary 210. Additionally, as illustrated in FIG. 3, graphicaldisplay manager 108 generates leaders 320-324 from the location of thecentroids 230-234 (shown in FIG. 2) to identifiers 310-314 correspondingto the geometry pieces 220-224 and labels 330-334 the identifiers inorder. The leaders 320-324 are shown trimmed to the edges of thegeometry pieces, however, it should be appreciated that the leaders canbe full length to the location of the centroids or any other manner ofpointing to geometry. In the illustrated embodiment, the identifiers310-314 are shown as circles, however, it should be appreciated that anygeometric shapes known in the art may be displayed including but notlimited to octagon shapes. Additionally, the FIG. 3 shows the leaders320-324 as straight lines, however, it should be appreciated that theleaders can be any geometric connectors known in the art. For theillustrated embodiment in FIG. 3, the identifiers 310-314 are spacedequidistant around the view boundary 210, however, it should beappreciated that the identifiers may be placed using other approachesincluding, but not limited to, placing the identifiers along the top andbottom edges of the display, or along the side edges of the display.Furthermore, the labels 330-334 of the identifiers are Arabic numeralsand are ordered top to bottom on the right side 330, top to bottom onthe left side 331 and 332, left to right on the top side 333, and thenleft to right on the bottom side 334 of the view boundary 210, however,the identifiers may be labeled using other approaches including, but notlimited to, alphabet or any other special characters, and the order mayfor example be clockwise or counter-clockwise or the like. Thus, theidentifiers are automatically generated for the designer withoutrequiring the designer to manually create each individual identifier andits leader line for each corresponding geometry piece. As will beappreciated by those skilled in the art, the automated manner ofcreation of identifiers of the present invention is much less timeconsuming, less labor intensive, and requiring much less commands.

[0021]FIG. 4 illustrates another example of the first and second aspectof the present invention automatically generating and orderingidentifiers corresponding to the geometry pieces within the viewboundary for more complex assemblies. In the illustrated embodimentshown in FIG. 4, as previously shown, the graphical display manager 108(shown in FIG. 1) operates to automatically generate identifiers 410-427corresponding to the geometry pieces 470-487 around the view boundary210. However, in the illustrated example of FIG. 4, the number ofgeometry pieces are more numerous and complex compared to the geometrypieces illustrated in FIG. 3.

[0022] Illustrated in FIG. 4, are exploded geometry pieces 476-481,single geometry piece not part of an assembly 482, and geometry piecesthat are shown assembled together 470-475 and 483-487. In theillustrated example of FIG. 4, the graphical display manager 108operates to automatically generate identifiers 416-418 for the explodedview of geometry pieces 476-478 and automatically generate identifiers419-421 for exploded view of geometry pieces 479-481 around the viewboundary 210. Additionally, the graphical display manager 108 operatesto automatically generate an identifier 422 for the single geometrypiece 482. Connecting the geometry pieces with their correspondingidentifiers, the graphical display manager 108 automatically generatesleaders 454-456, 457-459, and 460 from the calculated locations of thecentroids (not shown) of geometry pieces 476-478, 479-481, and 482 tothe identifiers 416-418, 419-421, and 422 respectively.

[0023] In the example of the illustrated embodiment shown in FIG. 4,geometry pieces 470-475 are shown as an assembly, and the graphicaldisplay manager 108 operates to automatically generate identifiers410-415 around the view boundary 210. However, in the illustratedexample of FIG. 4, the graphical display manager 108 operates to groupthe identifiers 410-415 together to show geometry pieces 470-475 as acombined assembly. Additionally, the graphical display manager 108operates to arrange the identifiers 412-414 corresponding to identicalgeometry pieces 472-474 in a row. The row shows that the one geometrypiece 472 corresponding to the one identifier 412 is one of severalidentical geometry pieces 473 and 474, and therefore, only one leader452 is required for the identifiers 412-414. Individual geometry pieces470, 471, and 475 shown as an assembly correspond to their respectiveidentifiers 410, 411, and 415 around the view boundary 210 with leaders450, 451, and 453.

[0024] Additionally, in the illustrated example of FIG. 4, geometrypieces 483-487 are shown as an assembly, and the graphical displaymanager 108 operates to automatically generate identifiers 423-427around the view boundary 210. As illustrated above, the graphicaldisplay manager 108 operates to group the identifiers 423-427 togetherto show geometry pieces 483-487 as a combined assembly. Additionally,the graphical display manager 108 operates to arrange the identifiers424 and 425 corresponding to identical geometry pieces 484 and 485 in acolumn. The column shows that the one geometry piece 485 correspondingto the one identifier 424 is one of another identical geometry piece484, and therefore, only one leader 462 is required for the identifiers424 and 425. Individual geometry pieces 483, 486, and 487 shown as anassembly correspond to their respective identifiers 423, 426, and 427around the view boundary 210 with leaders 461, 463, and 464.

[0025] In the illustrated example of the present invention of FIG. 4,the graphical display manager 108 automatically generates identifiers410-427 around the view boundary 210 grouping the identifiers forgeometry pieces 470-475 and 483-487 shown as assemblies as if they aresingular identifiers, however, it should be appreciated that theidentifiers can be arranged employing other grouping approaches. Theordering of the labels 430-447 of the identifiers are Arabic numeralsand are ordered top to bottom on the right side 430-435, top to bottomon the left side 436-438, left to right on the top side 439-441, andthen left to right on the bottom side 442-447 of the view boundary 210,however, as described earlier, the identifiers may be labeled usingalphabet or other special characters, and other orderings may beemployed. Thus, in like manner, for a complex display illustrated inFIG. 4, the identifiers may nevertheless be generated for a designerwithout requiring the designer to manually create each individualidentifier and its leader line for each corresponding geometry piece. Aswill be appreciated by those skilled in the art, the automatic creationof identifiers of the present invention is less time consuming, lesslabor intensive, and requiring much less commands.

[0026]FIG. 5 illustrates a third aspect of the present inventionfacilitating manipulation of the identifiers around the view boundary bya designer. As shown in FIG. 5, identifier 422 corresponding to geometrypiece 482 is selected by a user utilizing a cursor 510, and dragged anddropped to a new location around the view boundary 210. The graphicaldisplay manager 108 operates to reorder the labels 436-438, 439-441, and442 in response to the manipulation of the identifier 422. In theillustrated embodiment of FIG. 5, the manipulated identifier 523 has thenew label 533 with the leader 460 following to become new leader 543.The new leader 543 continues to originate from the centroid (not shown)of geometry piece 482.

[0027] Additionally, as shown in FIG. 5, graphical display manager 108operates to shift the identifiers 520-526 for the geometry pieces476-481 respective positions around the view boundary 210 in response tothe identifier 523 being dragged and dropped on the top side of the viewboundary 210 with the leaders 540-542 and 544-546 continuing to point tothe location of the centroids (not shown) of the geometry pieces 476-478and 479-481. Thus the designer may manipulate the identifiers around theview boundary by using the cursor overriding the automatic generation.As will be appreciated by those skilled in the art, the manipulation ofan identifier will not involve the user manually editing the order andpositions of the impacted neighboring identifiers as required in priorart, resulting in less time consumption, less labor intensive, and fewercommands; a substantial improvement over the prior art manual method.

[0028]FIGS. 6a-6 b illustrate one embodiment of the relevant operationalflows of the graphical display manager of FIG. 1. For the illustratedembodiment, graphical display manager 108 is programmed in an eventdriven model, i.e., graphical display manager 108 is designed to beexecuted in a system environment where various event notificationservices are available from the operating system. One example of suchoperating system suitable for practicing the present invention is theWindows® operating systems, available from Microsoft Corporation ofRedmond, Wash. In alternate embodiments, graphical display manager 108may be implemented in other programming approaches known in the art.

[0029] As show in FIG. 6a, responsive to an event notification informinggraphical display manager 108 of the fact that there are solid geometrypieces within a view boundary, graphical display manager 108 causesother functional blocks of drawing engine 104 to calculate the locationof the centroids of the solid geometry pieces 610, generate and orderidentifiers corresponding to the solid geometry pieces 620, and generateleaders from the centroid locations to the identifiers around the viewboundary 630. The manner in which the functional blocks effectuate thecalculation of the locations of the centroids may be implemented in anyone of a number of manners known in the art. The generation and orderingof the identifiers as well as generation of the leaders may beaccomplished in any one of a number of application dependent manners asdescribed earlier.

[0030] As shown in FIG. 6b, responsive to an event notificationinforming graphical display manager 108 of the fact that the user hasdragged and dropped one or more identifiers to a different locationaround the view boundary, the graphical display manager 108 causes otherfunctional blocks of drawing engine 104 to reorder the identifiersaround the view boundary with the leader following the moved identifier640. Additionally, the display manager 108 may cause other functionalblocks of drawing engine 104 to change the spatial arrangement of theidentifiers around the view boundary in response to the manipulation ofone or more identifier with the leaders following the spatially changedidentifiers. Similarly, the manner in with other functional blockseffectuate the reordering and spatial changing with leaders followingthe identifiers around the view boundary may be implemented in any oneof a number of application dependent manners as described earlier.

[0031]FIG. 7 illustrates one embodiment of a computer system suitable tobe programmed with the mechanical design drawing application of thepresent invention. As shown, for the illustrated embodiment, computer700 includes processor 702, processor bus 706, high performance I/O bus710 and standard I/O bus 720. Processor bus 706 and high performance I/Obus 710 are bridged by host bridge 708, whereas I/O buses 710 and 712are bridged by I/O bus bridge 712. Coupled to processor bus 706 is cache704. Coupled to high performance I/O bus 710 are system memory 714 andvideo memory 716, against which video display 718 is coupled. Coupled tostandard I/O bus 720 are disk drive 722, keyboard and pointing device724, and communication interface 726.

[0032] These elements perform their conventional functions known in theart. In particular, disk drive 722 and system memory 714 are used tostore permanent and working copies of the mechanical design system. Thepermanent copies may be pre-loaded into disk drive 722 in factory,loaded from distribution medium 732, or down loaded from a remotedistribution source (not shown). Distribution medium 732 may be a tape,a CD, a DVD or other storage medium of the like. The constitutions ofthese elements are known. Any one of a number of implementations ofthese elements known in the art may be used to form computer system 700.

[0033] In general, those skilled in the art will recognize that thepresent invention is not limited by the details described, instead, thepresent invention can be practiced with modifications and alterationswithin the spirit and scope of the appended claims. The description isthus to be regarded as illustrative instead of restrictive on thepresent invention.

[0034] Thus, a mechanical design drawing application with improvedfacility for a designer, working with identifiers of a drawing of amechanical design, to display and manipulate identifiers has beendescribed.

What is claimed is:
 1. A method comprising: determining if one or moregeometry pieces of a mechanical design are within a view boundary; andautomatically generating and ordering one or more identifierscorresponding to the geometry pieces within the view boundary.
 2. Themethod of claim 1, wherein said automatically generating and ordering ofidentifiers comprises: determining if the geometry pieces within theview boundary are solid geometry pieces; and automatically calculatingone or more centriods corresponding to the solid geometry pieces withinthe view boundary.
 3. The method of claim 2, wherein said generating andordering further comprises generating one or more leaders emanating fromthe centroids.
 4. The method of claim 1, wherein said automaticallygenerating and ordering comprises placing each identifier at a locationalong said view boundary closest to its corresponding geometry piece. 5.The method of claim 1, wherein said automatically generating andordering comprises placing identifiers at equidistant around the viewboundary.
 6. The method of claim 1, wherein said automaticallygenerating and ordering comprises: determining if the geometry piecesare identical; grouping identifiers of said identical geometry pieces;and stacking said grouped identifiers in common rows and columns aroundthe view boundary.
 7. The method of claim 1, wherein said automaticallygenerating and ordering of identifiers comprises automaticallyfacilitating a user in manipulating identifiers around the viewboundary.
 8. The method of claim 7, wherein said automaticallygenerating and ordering of identifiers further comprises: determining ifa user has dragged and dropped an identifier to a different positionaround the view boundary; and reordering other identifiers to complementthe dragged and dropped identifier.
 9. A storage medium having storedtherein a plurality of instructions that are machine executable, whereinwhen executed, the executing instructions operate to determine if one ormore geometry pieces of a mechanical design are within a view boundaryand automatically generate and order one or more identifierscorresponding to the geometry pieces within the view boundary.
 10. Thestorage medium of claim 9, wherein the executing instructions operate todetermine if the geometry pieces within the view boundary are solidgeometry pieces and automatically calculate one or more centroidscorresponding to the solid geometry pieces within the view boundary. 11.The storage medium of claim 10, wherein the executing instructionsfurther operate to generate one or more leaders emanating from thecentroids.
 12. The storage medium of claim 9, wherein the executinginstructions operate to place each identifier at a location along saidview boundary closest to its corresponding geometry piece.
 13. Thestorage medium of claim 9, wherein the executing instructions operate toplace identifiers at equidistant around the view boundary.
 14. Thestorage medium of claim 9, wherein the executing instructions operate todetermine if the geometry pieces are identical, group identifiers ofsaid identical geometry pieces, and stacking said grouped identifiers incommon rows and columns around the view boundary.
 15. The storage mediumof claim 9, wherein the executing instructions operate to automaticallyfacilitate a user in manipulating identifiers around the view boundary.16. The storage medium of claim 15, wherein the executing instructionsfurther operate to determine if a user has dragged and dropped anidentifier to a different position around the view boundary and reorderother identifiers to complement the dragged and dropped identifier. 17.An apparatus comprising: a storage medium having stored therein aplurality of instructions that are machine executable, wherein whenexecuted, the executing instructions operate to determine if one or moregeometry pieces of a mechanical design are within a view boundary andautomatically generate and order one or more identifiers correspondingto the geometry pieces within the view boundary; and a processor coupledto the storage medium to execute the instructions.
 18. The apparatus ofclaim 17, wherein the executing instructions operate to determine if thegeometry pieces within the view boundary are solid geometry pieces andautomatically calculate one or more centroids corresponding to the solidgeometry pieces within the view boundary.
 19. The apparatus of claim 18,wherein the executing instructions further operate to generate one ormore leaders emanating from the centroids.
 20. The apparatus of claim17, wherein the executing instructions operate to place each identifierat a location along said view boundary closest to its correspondinggeometry piece.
 21. The apparatus of claim 17, wherein the executinginstructions operate to place identifiers at equidistant around the viewboundary.
 22. The apparatus of claim 17, wherein the executinginstructions operate to determine if the geometry pieces are identical,group identifiers of said identical geometry pieces, and stacking saidgrouped identifiers in common rows and columns around the view boundary.23. The apparatus of claim 17, wherein the executing instructionsoperate to automatically facilitate a user in manipulating identifiersaround the view boundary.
 24. The apparatus of claim 23, wherein theexecuting instructions further operate to determine if a user hasdragged and dropped an identifier to a different position around theview boundary and reorder other identifiers to complement the draggedand dropped identifier.